﻿using System;
using System.IO;
using System.Text;

namespace 练习
{
    class Program
    {
        static void Main(string[] args)
        {
            #region 上周的练习 10.18-10.22
            /* string name="卡卡西";
             int nianling = 32;
             string youxiang = "kakaxi@qq.com";
             string jtzz = "火影村";
             int gz = 3500;
             Console.WriteLine("我叫{0}，我今年{1}岁了，我的邮箱是{2}，我来自{3}，我一个月工资{4}",name,nianling,youxiang,jtzz,gz);
             int age = 18;
             age = 81;
             Console.WriteLine("原来你都"+age+"岁数了");
             int n1 = 10;
             int n2 = 20;
             int n3 = 30;
             Console.WriteLine("第一个数字{0}，第二个数字{1}，第三个数字{2}",n1,n2,n3);
             string nam1 = "张馨予";
             char xing = '女';
             int nian = 20;
             string dian = "15935712920";
             Console.WriteLine("我叫{0}，我是一个{1}生，我今年{2}岁了，我的电话号是{3}",nam1,xing,nian,dian);
             string jia = "山西";
             int nl = 17;
             string nam2= "任珂民";
             string sr = "8月4号";
             string dh = "15935712920";
             Console.WriteLine("我来自{0}，我今年{1}岁了，我叫{2}，我的生日是{3}，我的电话号是{4}",jia,nl,nam2,sr,dh);
             Console.WriteLine("请输入您喜欢吃的苹果");
             string nume = Console.ReadLine();
             Console.WriteLine("这么巧我也喜欢吃{0}",nume);
             Console.WriteLine("请输入您的姓名");
             string a = Console.ReadLine();
             Console.WriteLine("请输入您的性别");
             string b = Console.ReadLine();
             Console.WriteLine("请输入您的年龄");
             string c = Console.ReadLine();
             Console.WriteLine("欢迎您{0}，您的性别是{1}，您的年龄是{2}",a,b,c);
            int tx = 35;
            int kz = 120;
            int zj = 3 * tx + 2 * kz;
            Console.WriteLine(zj);
            double shifu = zj * 0.88;
            Console.WriteLine(shifu);
            //46是几周零几天
            int  tianshu = 46;
            int yizhou = 7;
            int jizhou = tianshu / yizhou;
            int shengyu = jizhou * yizhou;
            int  ts = tianshu - shengyu;
            Console.WriteLine("46天是{0}周零{1}天",jizhou,ts);
            //编程实现107653秒是几天几小时几分钟几秒
            int i = 107653 / 86400;
            int j = 107653 % 86400 / 3600;
            int k = 107653 % 3600 / 60;
            int l = 107653 % 3600 % 60; 
            Console.WriteLine("107653秒是{0}天{1}小时{2}分钟{3}秒", i, j,k,l);

            //让用户输入姓名 ，语文，数学，英语，三门成绩。
            //然后给用户显示： **你的总成绩为**分，平均分为**
            Console.WriteLine("请输入你的姓名");
            string ming = Console.ReadLine();
            Console.WriteLine("请输入你的语文成绩");
            double yu1 = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("请输入你的数学成绩");
            double shu1 = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("请输入你的英语成绩");
            double ying1 = Convert.ToDouble(Console.ReadLine());
            double zong = yu1 + shu1 + ying1;
            double bing = zong / 3;
            Console.WriteLine("{0}你的总成绩为{1}分平均分为{2:0.00}", ming, zong, bing);

            //请输入老苏的语文和数学成绩输出以下是否正确。正确输出true 错误输出false
            //1.老苏的语文和数学都大于90
            Console.WriteLine("请输入你的语文成绩老苏");
            int a = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("请输入你的数学成绩老苏");
            int b = Convert.ToInt32(Console.ReadLine());
            //&& 都大于90才能正确 || 有一门大于90就正确
            bool d = a >= 90 && b >= 90;
            bool c = a >= 90 || b >= 90;
            Console.WriteLine(c);

            //编程实现；如果跪键盘的时间大于60分钟，那么媳妇我今晚不做饭了
             Console.WriteLine("媳妇输入我要跪的时间");
            int a =Convert.ToInt32(Console.ReadLine());
            if (a >= 60)
            {
                Console.WriteLine("媳妇我今晚不做饭了");
            }
            else if (a <= 59)
            {
                Console.WriteLine("媳妇真好，今晚吃什么");
            }*/

            //让用户输入年龄，如果年龄大于23岁，则给用户显示你到了结婚的年级；
            //Console.WriteLine("请输入你的年龄");
            //int a = Convert.ToInt32(Console.ReadLine());
            //if (a >= 23)
            //{
            //    Console.WriteLine("你到了结婚的年级");
            //}
            //else if(a <= 22)
            //{
            //    Console.WriteLine("你还年轻接着奏乐接着舞");
            //}

            //如果老苏的语文成绩大于90并且音乐成绩大于80  两个大条件满足一个就奖励
            //如果老苏的语文成绩等于100并且音乐成绩大于70则奖励一百
            //Console.WriteLine("老苏请输入你的语文成绩");
            //int a1 = Convert.ToInt32(Console.ReadLine());
            //Console.WriteLine("老苏请输入你的音乐成绩");
            //int a2 = Convert.ToInt32(Console.ReadLine());
            //bool b = (a1 >= 90 && a2 >= 80) || (a1 == 100 && a2 >= 70);
            //if (b)
            //{
            //    Console.WriteLine("奖励你100元老苏");
            //}
            //else 
            //{
            //    Console.WriteLine("罚款老苏100元");
            //}

            //让用户输入用户名和密码，如果用户输入的密码用户名正确则提示登陆成功。
            //Console.WriteLine("请输入你的用户名");
            //string a =Console.ReadLine();
            //Console.WriteLine("请输入你的密码");
            //string b =Console.ReadLine();
            // bool c = a == "123" && b == "456";
            //if (c)
            //{
            //     Console.WriteLine("恭喜你登陆成功");
            // }
            // else
            // {
            //     Console.WriteLine("你输入错误，请重新输入");
            // }

            //如果小赵的考试成绩大于90分，那么爸爸奖励他100元
            //没有大于90 分，跪方便面
            //Console.WriteLine("小赵请输入你的成绩");
            //int a = Convert.ToInt32(Console.ReadLine());
            //bool b = a >= 90;
            //if (b)
            //{
            //    Console.WriteLine("小赵奖励你100块钱");
            //}
            //else
            //{
            //    Console.WriteLine("跪方便面吧，赵");
            //}

            //学员考试成绩评价
            //成绩>= 90 a  | 90 > 成绩>=80 b | 80>成绩 >= 70 c| 70> 成绩 >= 60 d |60 > 成绩 < 60 e
            //Console.WriteLine("请输入你的考试成绩");
            //int a = Convert.ToInt32(Console.ReadLine());
            //if (a >= 90)
            //{
            //    Console.WriteLine("A");
            //}
            //if(a <=89 && a >=80)
            //{
            //    Console.WriteLine("B");
            //}
            //if(a <= 79 && a >= 70)
            //{
            //    Console.WriteLine("C");
            //}
            //if(a <=69 && a >= 60)
            //{
            //    Console.WriteLine("D");
            //}
            //if(a < 60)
            //{
            //    Console.WriteLine("E");
            //}
            //学员考试成绩评价
            //成绩>= 90 a  | 90 > 成绩>=80 b | 80>成绩 >= 70 c| 70> 成绩 >= 60 d |60 > 成绩 < 60 e
            //if (a >= 90)
            //{
            //    Console.WriteLine("A");
            //}
            //else if (a >= 80)
            //{
            //    Console.WriteLine("B");
            //}
            //else if (a >= 70)
            //{
            //    Console.WriteLine("C");
            //}
            //else if (a >= 60)
            //{
            //    Console.WriteLine("D");
            //}
            //else
            //{
            //    Console.WriteLine("E");
            //}

            //用户输入3个数字，然后比较大小。
            //Console.WriteLine("请输入数字");
            //int a = Convert.ToInt32(Console.ReadLine());
            //Console.WriteLine("请输入数字");
            //int b = Convert.ToInt32(Console.ReadLine());
            //Console.WriteLine("请输入数字");
            //int c = Convert.ToInt32(Console.ReadLine());
            //if(a > b && a > c)
            //{
            //    Console.WriteLine("一个数最大");
            //}
            //else if (b > a && b > c)
            //{
            //    Console.WriteLine("第二个最大");
            //}
            //else if (c > a && c > b)
            //{
            //    Console.WriteLine("第三个最大");
            //}
            //else
            //{
            //    Console.WriteLine("相等");
            //}
            //让用户输入密码和用户名，把输入正确和输入错误的都用编程模式打出lai
            //Console.WriteLine("请输入用户名");
            //string a = Console.ReadLine();
            //Console.WriteLine("请输入密码");
            //string b = Console.ReadLine();
            //if (a == "yao" && b =="5211314")
            //{
            //    Console.WriteLine("输入正确，欢迎您");
            //}
            //else if(a == "yao")
            //{
            //    Console.WriteLine("密码错误，程序退出"); 
            //}
            //else if(b == "5211314")
            //{
            //    Console.WriteLine("用户名错误，程序退出");
            //}
            //else
            //{
            //    Console.WriteLine("用户名和密码都错误，程序退出");
            //}

            //Console.WriteLine("请输入你的年龄");
            //int a = Convert.ToInt32(Console.ReadLine());
            //if (a >= 18)
            //{
            //    Console.WriteLine("可以查看");
            //}
            //else if (a < 10)
            //{
            //    Console.WriteLine("不可以查看");
            //}
            //else 
            //{
            //    Console.WriteLine("确定要看吗？yes/no" );
            //    string b = Console.ReadLine();
            //    if (b == "yes")
            //    {
            //        Console.WriteLine("看吧看吧，年轻人得节制");
            //    }
            //    else
            //    {
            //        Console.WriteLine("有自制力哦铁子");
            //    }

            //}

            //李四的年终工作进展，如果为A则工资加500 ，如果为b则工资加200 如果为c则工资不变 如果为d则工资减200 如果为e则工资减500
            //设李四的工资为5000，让用户输入评级，然后显示李四来年的工资
            //if else做法：
            //bool o = true; 
            //double a = 5000;
            //Console.WriteLine("请输入李四的工资评定");
            //string b = Console.ReadLine();
            //if(b == "a")
            //{
            //    a += 500;
            //}
            //else if (b == "b")
            //{
            //    a += 200;
            //}
            //else if(b == "c") 
            //{

            //}
            //else if (b == "d")
            //{
            //    a -= 200;
            //}
            //else if (b == "e")
            //{
            //    a -= 500;
            //}
            //else
            //{
            //    Console.WriteLine("输入有误，退出程序");
            //    o = false;
            //}
            //if (o == true)
            //{
            //Console.WriteLine("李四来年的工资是{0}", a);
            //}
            //switch-case做法
            //bool o = true;
            //double a = 5000;
            //Console.WriteLine("请输入李四的工资评定");
            //string b = Console.ReadLine();
            //switch (b)
            //{
            //    case "a": a += 500;
            //        break;
            //    case "b": a += 200;
            //        break;
            //    case "c": break;
            //    case "d": a -= 200;
            //        break;
            //    case "e": a -= 500;
            //        break;
            //    default: Console.WriteLine("输入有误，请重新输入");
            //        o = false;
            //        break;
            //}
            //if (o == true)
            //{
            //    Console.WriteLine("李四来年的年终奖是{0}元", a);
            //}

            //让用户输入姓名，然后显示这个人上辈子是什么职业
            //(老杨，老张，老孙，老猪，老江，老蒋，老刘)
            //Console.WriteLine("请输入姓名");
            //Console.WriteLine("老杨，老张，老孙，老猪，老江，老蒋，老刘");
            //string a = Console.ReadLine();
            //switch (a)
            //{
            //    case "老杨": Console.WriteLine("老杨上辈子是清洁工");
            //        break;
            //    case "老张": Console.WriteLine("老张上辈子是保安");
            //        break;
            //    case "老孙": Console.WriteLine("老孙上辈子是猴子");
            //        break;
            //    case "老猪": Console.WriteLine("老猪上辈子是头猪");
            //        break;
            //    case "老江": Console.WriteLine("老江上辈子是总裁");
            //        break;
            //    case "老蒋": Console.WriteLine("老蒋上辈子是农民");
            //        break;
            //    case "老刘": Console.WriteLine("老刘上辈子是精神病患者");
            //        break;
            //    default: Console.WriteLine("没有这个名字哦试试别的吧");
            //        break;
            // }
            #endregion


            #region //10.25-10.29 练习 

            //三元表达式
            //
            //int a = 0;
            //while (a < 100)//循环条件
            //{
            //    Console.WriteLine("写一千遍\t{0}",a);//循环体
            //    a++;//每循环一次自身加1，如果不写就是一个死循环。
            //}

            //while循环的练习1
            //输入班级人数，然后依次输入学员成绩，计算班级学员的平均成绩，和总成绩。
            //循环体：输入班级人数，输入学员成绩
            //循环条件：班级人数和学员成绩计算完成
            //Console.WriteLine("请输入班级人数");
            //int renshu = Convert.ToInt32(Console.ReadLine());//班级人数
            //int i = 1;//循环次数
            //int zcj = 0; //用来存放总成绩
            //while (i <= renshu)
            //{
            //    Console.WriteLine("请输入第{0}学员成绩",i);
            //    int chengji = Convert.ToInt32(Console.ReadLine());
            //    i++;
            //    zcj +=chengji ;
            //}

            //Console.WriteLine("班级学员的总成绩是{0}",zcj);
            //Console.WriteLine("班级学员的平均成绩是{0}",zcj/renshu);

            //老师问学生，这道题会做了吗？如果学生回答会，则可以放学，如果学生回答不会做，则老师再讲一遍，再问学生会不会做
            //直到学生会了才可以放学||老师讲了十遍他还不会，就放学。
            //循环体：老师问学生，这道题会做了吗
            //循环条件：学生回答会，不会
            //int i = 0 ;//记录循环次数
            //string a = "";//用来接受学生会不会
            //while (i < 10 && a != "会了")
            //{
            //    Console.WriteLine("这是我第{0}遍给你讲这道题你会做了嘛？",i+1);
            //     a = Console.ReadLine();
            //    if(a == "会了")
            //    {
            //        break;
            //    }
            //    i++;
            //}
            //Console.WriteLine("放学吧孩子");
            //2006年培养学员80000人，每年增长25%，请问那年学员可以到达20万人
            //int i = 2006;//多少年
            //double xueyuan = 80000;//基础学员
            //while (xueyuan <= 200000)
            //{
            //    xueyuan *= 1.25;
            //    i++;
            //}
            //Console.WriteLine("到{0}年学员到达{1}人已到达20万人",i,xueyuan);

            //提示用户只能输入yes 或者no，只要不是yes，y就一直重新输入
            //string a = "yes";
            //string b = "no";
            //string c = "";
            //while (c != a && c != b)
            //{
            //    Console.WriteLine("请输入，yes/no");
            //    c = Console.ReadLine();
            //    if(c == a||c ==b)
            //    {
            //        Console.WriteLine("输入正确，欢迎您");
            //        break;
            //    }
            //}

            //提示用户输入用户名和密码 要求用户名等于123 密码等于888888
            //只要用户输入密码用户名错误就重新输入，但是只能输入3次
            //string a = "";//用来存放用户名
            //string b = "";//用来存放密码
            //int i = 0;//用来记录循环
            //while ((a != "123" || b != "888888")&&i <= 3)
            //{
            //    Console.WriteLine("请输入你的用户名{0}次",i);
            //    a = Console.ReadLine();
            //    Console.WriteLine("请输入你的密码{0}次",i);
            //    b = Console.ReadLine();
            //    if(a=="123"&& b == "888888")
            //    {
            //        Console.WriteLine("欢迎您，尊贵的vip");
            //    }
            //    i++;
            //}
            //Console.WriteLine("明天再来吧");

            //写两个循环，第一个循环提示用户a输入用户名 要求a的用户名不能为空，只要为空，就要求a一直重新输入
            //第二个循环提示用户名b输入用户名，要求b的用户名不能跟a的用户名一样，并且不能为空
            //只要为空，并且跟a的用户名相同就一直提示用户名b重新输入
            //string a = "";//来存放a的用户名
            //string b = "";//来存放b的用户名
            //while (a =="")
            //{
            //    Console.WriteLine("请输入用户名a不能为空");
            //    a = Console.ReadLine();
            //}
            //Console.WriteLine("请输入用户名b不能为空并且不能跟a的用户名一样");
            //b = Console.ReadLine();
            //while (b == "" || b == a)
            //{
            //    if (b == "")
            //    {
            //        Console.WriteLine("请重新输入，用户名不能为空");
            //        b = Console.ReadLine();
            //    }
            //    else
            //    {
            //        Console.WriteLine("请重新输入，用户名不能跟a一样");
            //        b = Console.ReadLine();
            //    }
            //}
            //小兰就要登台演出了，老师说再把明天演出的歌曲唱一遍，如果满意，小兰就可以回家了，如果不满意就继续唱直到老师满意为止
            //string a = "";//来存放老师的回答
            //int i = 1;//来存放循环次数
            //while (a != "满意了")
            //{
            //    Console.WriteLine("唱{0}次老师满意吗 ? ",i);
            //    a = Console.ReadLine();
            //    i++;
            //}
            //Console.WriteLine("回家吧");

            //do while循环的练习   

            //小兰就要登台演出了，老师说再把明天演出的歌曲唱一遍，如果满意，小兰就可以回家了，如果不满意就继续唱直到老师满意为止
            //string a = "";
            //do
            //{
            //    Console.WriteLine("老师我唱一遍，你看满意吗？");
            //    a = Console.ReadLine();
            //} while (a == "不满意");
            //Console.WriteLine("好了回家吧，明天加油")

            //不断要求用户输入一个数字，然后打印这个数字的2倍，当用户输入到q的时候结束
            //string a ="";
            //do
            //{
            //    Console.WriteLine("请输入一个数字");
            //    a = Console.ReadLine();
            //    if(a != "q")
            //    {
            //        try
            //        {
            //            int number = Convert.ToInt32(a);
            //            Console.WriteLine("你输入的数字的二倍是{0}", number * 2);
            //        }
            //        catch
            //        {
            //            Console.WriteLine("输入的不是数字请重新输入");
            //        }

            //    }
            //    else
            //    {
            //        Console.WriteLine("输入的是q程序退出");
            //    }
            //} while (a != "q");



            //for循环
            //for (int i = 1; i < 10; i++)
            //{
            //    Console.WriteLine("欢迎来到德莱联盟{0}",i);
            //}
            //Console.ReadKey();
            //for循环的正序输出和倒叙输出
            ////请打印1-10
            //for (int i = 1; i <= 10; i++)
            //{
            //    Console.WriteLine("？？？{0}",i);
            //}
            ////请打印10-1
            //for (int i = 10; i >= 1; i--)
            //{
            //    Console.WriteLine("? ? ?{0}",i);
            //}
            //for循环的练习
            //求1-100之间的总数和
            //int a = 0;
            //for (int i = 1; i <= 100; i++)
            //{
            //    a += i;
            //}
            //Console.WriteLine(a);
            //求1-100之间的偶数和 
            //int a = 0;                              
            //for (int i = 2; i <= 100; i+=2)
            //{
            //    a += i;
            //}
            //Console.WriteLine(a);
            //求1-100之间的奇数
            //int a = 0;
            //for (int i = 1; i <= 100; i+=2)
            //{
            //    a += i;
            //}
            //Console.WriteLine(a);
            //找出100-999的水仙花数
            //水仙花数指的是百位数字里的
            //百位立方+十位立方+个位立方=当前这个百位数
            //立方是乘以3
            //for (int i = 100; i < 999; i++)
            //{
            //    int bai = i / 100;
            //    int shi = i % 100 / 10;
            //    int ge = i % 10;
            //    if (bai * bai * bai + shi * shi * shi + ge * ge * ge==i)
            //    {
            //        Console.WriteLine("水仙花数有{0}",i);
            //    }
            //}

            //乘法口诀表
            //for (int i = 1; i <= 9; i++)
            //{
            //    for (int j = 1; j <= i; j++)
            //    {
            //        Console.Write("{0}*{1}={2}\t",i,j,i*j);
            //    }
            //    Console.WriteLine();
            //}
            //让用户输入一个数字，显示出来这个数的所有加法
            //Console.WriteLine("请输入一个数字");
            //int number = Convert.ToInt32(Console.ReadLine());
            //for (int i = 0; i <= number; i++)
            //{
            //    Console.WriteLine("{0}+{1}={2}",i,number-i,number);
            //}

            //循环最后3个练习
            //练习1：for循环录入5个人的年龄并计算平均年龄，
            //如果录入的数据出现负数或者大于100的数，立即停止循环输入并报错。
            //int a = 0;
            //int b = 0;
            //bool c= true;
            //for (int i = 1; i <= 5; i++)
            //{
            //    Console.WriteLine("请输入第{0}个人的年龄",i);
            //    try
            //    {
            //         b = Convert.ToInt32(Console.ReadLine());
            //    }
            //    catch
            //    {
            //        Console.WriteLine("输入错误，请输入一百以内的数字，程序退出");
            //        c = false;
            //        break;
            //    }

            //    if (b >= 0 && b <= 100)
            //    {
            //        a += b;
            //    }
            //    else
            //    {
            //        Console.WriteLine("你输入的数字不在范围内，程序退出");
            //        c = false;
            //        break;
            //    }
            //}
            //if (c)
            //{
            //    Console.WriteLine("五个人的平均年龄是{0}",a/5);
            //}

            //练习二 在while循环中使用break实现要求用户一直输入用户名和密码，
            //只要不是admin。888888就一直要求重新输入，如果正确就显示登陆成功
            //string a = "";//用来存放用户名
            //string b = "";//用来存放密码
            //while (true)
            //{
            //    Console.WriteLine("请输入用户名");
            //    a = Console.ReadLine();
            //    Console.WriteLine("请输入密码");
            //    b = Console.ReadLine();
            //    if (a == "admin" && b == "888888")
            //    {
            //        Console.WriteLine("输入正确，登陆成功");
            //        break;
            //    }
            //    else
            //    {
            //        Console.WriteLine("用户名或者密码错误，请重新输入");
            //    }
            //}

            //1-100之间的整数相加，得到累加数大于20的当前数
            //比如（1+2+3+4+5+6=21）结果 总数>20 i是6
            //int a = 0;//用来存放总数
            //for (int i = 1; i <= 100; i++)
            //{
            //    a += i;
            //    if (a >= 20)
            //    {
            //        Console.WriteLine("当{0}的时候，总和大于20",i);
            //        break;
            //    }
            //}
            #endregion

            #region 11.01 - 11.05 练习
            //练习学习到的代码 敲10遍
            //代码出现异常
            //try catch try catch try catch try catch try catch try catch try catch try catch try catch try catch
            //循环 while while while while while while while while while while while while while while while 
            // do while do while do while do while do while do while do while do while do while do while do while 

            //break break break break break break break break break break break break break break break break break
            //for for for for for for for for for for for for for for for for for for for for
            //转换
            //int.Trtparse int.Trtparse int.Trtparse int.Trtparse int.Trtparse int.Trtparse int.Trtparse
            //int.Trtparse int.Trtparse int.Trtparse int.Trtparse int.Trtparse int.Trtparse int.Trtpatse
            //Trtparse Trtparse Trtparse Trtparse Trtparse Trtparse Trtparse Trtparse Trtparse Trtparse Trtparse Trtparse Trtparse Trtparse
            //parse parse parse parse parse parse parse parse parse parse parse parse parse parse parse parse parse parse parse parse 
            //new一个随机数
            //Rendom r=new Random(); Rendom r=new Random; Rendom r=new Random; Random r=new Random; Random r=new Random;
            //Rendom r=new Random(); Rendom r=new Random; Rendom r=new Random; Random r=new Random; Random r=new Random;
            //Rendom Rendom Rendom Rendom Rendom Rendom Rendom Rendom Rendom Rendom Rendom Rendom Rendom Rendom Rendom Rendom Rendom 
            //new Rendom new Rendom new Rendom new Rendom new Rendom new Rendom new Rendom new Rendom new Rendom new Rendom 
            //punlic 访问修饰符，公开公用，punlic punlic punlic punlic punlic punlic punlic punlic punlic punlic punlic punlic punlic
            //enum 声明枚举的关键字 enum enum  enum enum enum enum enum enum enum enum enum enum enum enum enum enum enum enum enum enum enum
            //punlic enum 枚举名 punlic enum 枚举名 punlic enum 枚举名 punlic enum 枚举名 punlic enum 枚举名 punlic enum 枚举名
            //常量
            //const int a=10; const const const const const const const const const const const const const const const const const
            //结构 public struct 结构名
            //public访问修饰符 public public public public public publc public public public public public public public public public
            //struct 声明结构的关键子 struct struct struct struct struct struct struct struct struct struct struct struct 
            //随机数练习
            //while(true)
            //{
            //    Random r = new Random();
            //   int number = r.Next(1, 3);
            //    Console.WriteLine(number);
            //Console.ReadKey();
            //}
            //输入一个名字然后随机显示这个人上辈子是干什么的
            //while (true)
            //{
            //    Console.WriteLine("请输入你的名字");
            //    string a = Console.ReadLine();//接收用户输入
            //    Random r1 = new Random();//创建一个随机数，给随机数命名为r1
            //    int number1 = r1.Next(1, 6);//再创建一个int类型的变量来接收这个随机数
            //    switch (number1)//在switch语句里进行判断
            //    {
            //        case 1://如果随机到1，执行下面这行代码
            //            Console.WriteLine("是个傻子");
            //            break;
            //        case 2://如果随机到2，执行下面这行代码
            //            Console.WriteLine("是个帅哥");
            //            break;
            //        case 3://如果随机到3，执行下面这行代码
            //            Console.WriteLine("是个农民");
            //            break;
            //        case 4://如果随机到4，执行下面这行代码
            //            Console.WriteLine("家里有矿");
            //            break;
            //        case 5://如果随机到5，执行下面这行代码
            //            Console.WriteLine("穷逼");
            //            break;
            //    }
            //}
            //从一个整数数组中取出最大值，最小值，和总和，还有平均值。
            //int[] a = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
            //int b = 0;//声明一个变量用来存储最大值、
            //int c = 0;//声明一个变量用来存储最小值。
            //int zh = 0;//声明一个变量用来存储总和
            //for (int i = 0; i < a.Length; i++)
            //{
            //    if (a[i] > b)
            //    {
            //        b = a[i];//将数组中的每一个值进行比较保留最大的一个数字，得到最大值
            //    }
            //    if (a[i] < c)//a[i]表示数组在循环过程中从0-9的数字
            //    {
            //        c = a[i];//将数组中的每一个值进行比较，保留最小的一个数字，得到最小值。
            //    }
            //    else
            //    {

            //    }
            //    zh += a[i];
            //}
            //Console.WriteLine("最大值是{0}", b);
            //Console.WriteLine("最小值是{0}", c);
            //Console.WriteLine("总和是{0}",zh);
            //Console.WriteLine("平均值是{0}",zh/a.Length);
            //数组里都是人的名字，分割成，例如{老杨，老张，老刘，老马，老孙，老猪，老虎，老牛，老森，}
            //通过一个循环，获得字符串数组中的每一个元素。
            //然后声明一个字符串，把所有元素累加到字符串里面然后加"|"
            //老森后面有丨在循环里减1次循环，到老牛结束，然后在输出里把老森加回来输出后老森后面没有了"|"。
            //string[] a = { "老杨", "老张", "老刘", "老马", "老孙", "老猪", "老虎", "老牛", "老森" };
            //string b = null;//null没有开空间而""开了空间
            //for (int i = 0; i < a.Length-1; i++)
            //{
            //    b += a[i]+"|";//将数组中的字符串都累加到字符串b中并且每循环一次都加"|"
            //}
            //Console.WriteLine(b+a[a.Length-1]);//b中的字符串少一个老森，然后通过索引的方式把老森加上。//访问最后一个元素，数组的长度减1
            //将一个整数数组的每一个元素进行如下的处理，如果元素是正数则将这个位置的元素的值加1如果元素是负数则将这个位置的元素的值减1
            //如果元素是0则不变
            //我们可以通过一个循环去赋值，同样也可以通过一个循环去取值

            //将一个字符串数组的元素的顺序进行反转，（"我""是""好人"）（"好人""是""我"）
            //string[] a = { "我", "是", "好人" };
            //for (int i = 0; i < a.Length/2; i++)//将我跟好人进行反转只需要反转一次，所有将长度除以二循环一次。
            //{
            //    string b = a[i]; //创建一个新的变量进行调换//现在这个变量b里面存储的是我
            //    a[i] = a[a.Length - 1 - i];然后通过索引的方式把好人存储到a[i]里面 好人现在已经到了开头
            //    a[a.Length - 1 - i] = b;然后再把b这个变量里面的我，给到最后这个索引里面。
            //}
            //for (int i = 0; i < a.Length; i++)
            //{
            //    Console.WriteLine(a[i]);//最后通过一个新的循环，来提取a[i]里面的值
            //}

            //将{9,8,7,6,5,4,3,2,1,0,}变成{0,1,2,3,4,5,6,7,8,9,}
            //int[] nums = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
            //只能针对数组做一个升序的排列
            //Array.Sort(nums);
            //只针对数组进行一个转换的排序
            //Array.Reverse(nums); 
            //for (int i = 0; i < nums.Length - 1; i++)//创建一个for循环，i从0到9来进行循环
            //{
            //    for (int j = 0; j < nums.Length - 1 - i; j++)
            //    {
            //        if (nums[j] > nums[j + 1])
            //        {
            //            int a = nums[j];
            //            nums[j] = nums[j + 1];
            //            nums[j + 1] = a;
            //        }
            //    }
            //}
            //for (int i = 0; i < nums.Length; i++)
            //{
            //  Console.WriteLine(nums[i]);
            //}

            //方法的练习
            //方法的调用语法，类名.方法名（[参数]）；参数是什么类型用什么类型来接收。
            /*int max = Program.a(1,3);*///（n1跟n2的参数）1,3
                                         //Console.WriteLine(max);

            //读取输入的整数，定义成方法，多次调用（如果用户输入的是数字则返回，否则一直提示用户重新输入）

            //Console.WriteLine("请输入数字");
            //string a = Console.ReadLine();
            //int number = b(a);

            //只允许用户输入y和n
            //Console.WriteLine("请输入y或n");
            //string a = Console.ReadLine();
            //string b = C(a);
            //Console.WriteLine(b);

            //计算输入数组的和
            //int[] number = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            //int a = D(number);
            //Console.WriteLine(a);
            //#endregion
            //Console.ReadKey();
            #endregion

            #region 11.08-11.12 练习
            //计算数组中的最大值，最小值，总和，平均值。
            //int[] number = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            ////int[] num= E(number);
            ////Console.WriteLine("最大值是{0}最小值是{1}总和是{2}平均值是{3}",num[0],num[1],num[2],num[3]);
            //int max = 0;
            //int min = 0;
            //int sun = 0;
            //int avg = 0;
            //F(number, out max, out min, out sun, out avg);
            //Console.WriteLine("最大值是{0}最小值是{1}总和是{2}平均值是{3}",max,min,sun,avg);

            ////ref参数
            //double a = 5000;
            //jiangjin(ref a);
            //Console.WriteLine(a);

            //提示用户输入两个数字 计算这两个数字之间的和
            //1.用户只能输入数字
            //2.计算用户输入数字之间的和
            //3.要求第一个数字必须比第二个数字小 错了则重新输入
            //Console.WriteLine("请输入第一个数字");
            //string a = Console.ReadLine();
            //int number = Alx(a);
            //Console.WriteLine("请输入第二个数字");
            //string b = Console.ReadLine();
            //int numbers = Alx(b);
            ////判断第一个数字是否小于第二个数字
            // AlxA(ref number,ref numbers);

            ////求和
            //int sun = AlxB(number, numbers);
            //Console.WriteLine(sun);

            //用方法来实现，有一个字符串数组，求出输出量
            //string[] a = {"马龙","迈克尔乔丹","雷吉米勒","蒂姆邓肯","科比布莱恩特"};
            //string max = Blx(a);
            //Console.WriteLine("最长的是{0}",max);

            //用方法来实现，请计算出整数数组的平均值 保留两位小数
            //int[] a = { 1, 2, 7  };
            //double number = Clx(a);
            ////保留两位小数
            //string s = number.ToString("0.00");
            //number = Convert.ToDouble(s);
            //Console.WriteLine(s);
            //Console.WriteLine("平均值是{0}",number);

            //写一个方法，用来判断用户输入的数字是不是质数
            //在写一个方法，要求用户只能输入数字，输入有误就让用户一直输入
            //while (true)
            //{
            //    Console.WriteLine("请输入数字，我来帮你判断是不是质数");
            //    string a = Console.ReadLine();
            //    int number = Bb(a);
            //    bool numbers = Aa(number);
            //    Console.WriteLine(numbers);
            //}

            //接受用户输入后并判断其等级，并显示出来。
            //判断如下：等级（优90-100）；良(80-89)
            //while (true)
            //{
            //    Console.WriteLine("请输入考试成绩");
            //    int a = Convert.ToInt32(Console.ReadLine());
            //    string b = Cc(a);
            //    Console.WriteLine(b);
            //}

            //请将字符串中的数组进行内容反转
            //string[] number= { "中国", "美国", "巴西", "澳大利亚", "加拿大" };
            //string[] a = Dd(number);
            //for (int i = 0; i < a.Length; i++)
            //{
            //    Console.WriteLine(a[i]);
            //}

            //通过冒泡排序对整数数组{1,3,5,7,90,2,4,6,8,10}实现升序排序
            //int[] number = { 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 };
            //Aaa(number);
            //for (int i = 0; i < number.Length; i++)
            //{
            //    Console.WriteLine(number[i]);
            //}

            //将一个字符串数组用|进行分割的形式，比如{"梅西"|"卡卡西"|"郑大世"}
            //string[] number = { "梅西", "卡卡西", "郑大世" };
            //string numbers = MM(number);
            //Console.WriteLine(numbers);
            //Console.ReadKey();


            #endregion

            #region 11.15-11.19练习
            /*
             * 枚举enum enum enum enum enum enum enum enum enum enum enum enum enum enum enum enum
             * 结构struct struct struct struct struct struct struct struct struct struct struct struct struct
             * 访问修饰符public public public public public public public public public public public
             * 常量const const const const const const const const const const const const const const
             * 创建随机数Reandom Reandom Reandom Reandom Reandom Reandom Reandom Reandom Reandom
             * 数组升序排列Array.sort Array.sort Array.sort Array.sort Array.sort Array.sort Array.sort Array.sort
             * 数组转换排列Array.Reverse Array.Reverse Array.Reverse Array.Reverse Array.Reverse Array.Reverse
             * 静态的static static static static static static static static static static static
             * 高级参数out参数ref参数params可变参数out out out out out out out out out ref ref ref ref ref ref ref ref params params params params params params params
             * 返回值 return return return return return return return return return return return return
             * 给属性赋值执行set()set()set()set()set()set()set()set()set()set()set()set()set()set()
             * 取值的时候执行get()get()get()get()get()get()get()get()get()get()get()get()get()get()
             * 字段Fields Fields Fields Fields Fields Fields Fields Fields Fields Fields Fielse
             * 方法Methods Methods Methods Methods Methods Methods Methods Methods Methods Methods
             * 属性Property Property Property Property Property Property Property Property Property
             * 访问修饰符私有private private private private private private private private private private private private private
             * new关键字this关键字new new new new new new new new new new new new new new new new
             * this this this this this this this this this this this this this this this this this this this this 
             * 我们学的值类型和引用类型
             * 值类型：整数：int.小数：double.布尔：bool.字符：chat.金钱：decimal.结构：struct.枚举enum
             * 引用类型:string.自定义类.数组.
             * 金钱：decimal decimal decimal decimal decimal decimal decimal decimal decimal decimal decimal decimal decimal
             * 枚举：enum enum enum enum enum enum enum enum enum enum enum enum enum enum enum enum enum enum enum enum enum enum enum enum 
             * 结构：sreuct struct struct struct struct strict struct struct struct struct struct struct struct
             * 字符串的各种方法：
             * 1.ToCharArray()将字符串转换为char类型ToCharArray()ToCharArray ToCharArray ToCharArray ToCharArray ToCharArray ToCharArray
             * 2.new string(char[])将char数组转为字符串new string(char[])new string new string new string new string new string new string
             * 3.Length获得当前字符串中的字符个数Length Length Length Length Length Length Length Length Length
             * 4.ToUpper()将字符串转换成大写形式ToUpper ToUpper ToUpper ToUpper ToUpper ToUpper ToUpper ToUpper ToUpper ToUpper
             * 5.ToLower()将字符串转换成小写形式ToLower ToLower ToLower ToLower ToLower ToLower ToLower ToLower ToLower 
             * 6.Equals(stringComparison.ordinalIgnoreCase)比较两个字符串，可以忽略大小写
             * 7.Split(stringSplitOptions.RemoveEmptyEntries)分割字符串返回字符串类型的数组
             * 8.Substring;截取字符串Substring Substring Substring Substring Substring Substring Substring Substring
             * 9.IndexOf()判断某个字符串第一次出现的位置IndexOf IndexOf IndexOf IndexOf IndexOf IndexOf IndexOf Indexof Indexof IndexOf IndexOf IndexOf
             * 10.LastIndexOf()判断某个字符串最后出现的位置LastIndexOf LastIndexOf LastIndexOf LastIndexOf LastIndexOf
             * 11.StartsWith()判断以....开始StartsWith StartsWith StartsWith StartsWith StartsWith StartsWith
             * 12.EndsWith()判断以....结束EndsWith EndsWith EndsWith EndsWith EndsWith Endswith EndsWith EndsWith
             * 13.Replace()将字符串中每个字符串替换成新的字符串Replace Replace Replace Replace Replace Replace Replace
             * 14.Contains()判断某个字符串是否包含指定字符串Contains Contains Contains Contains Contains Contains Contains Contains Contains
             * 15.Trim()去掉字符串前后的空格Trim Trim Trim Trim Trim Trim Trim Trim Trim Trim Trim Trim Trim Trim Trim
             * 16.TrimStatr 去掉字符串前面的空格
            */
           
            #endregion
        }

        //方法的练习
        #region 11-1 11-5
        /// <summary>
        /// 计算两个整数的最大值，并且将最大值返回
        /// </summary>
        /// <param name="n1">第一个整数（参数）</param>
        /// <param name="n2">第二个整数（参数）</param>
        /// <returns>返回最大值</returns>
        public static int A(int n1, int n2)
        {
            return n1 > n2 ? n1 : n2;
            //如果n1大于n2则n1就是整个三元表达式的值，否则n2就是整个三元表达式的值。
        }

        /// <summary>
        /// 读取用户的输入，如果是数字则退出，否则一直提示用户重新输入
        /// </summary>
        /// <param name="n">用户的输入</param>
        /// <returns>输入正确则返回输入的值</returns>
        public static int B(string n)
        {
            while (true)
            {
                try
                {
                    int number = Convert.ToInt32(n);
                    Console.WriteLine("输入正确");
                    return number;
                }
                catch
                {
                    Console.WriteLine("输入错误，请重新输入");
                    n = Console.ReadLine();
                }
            }
        }

        /// <summary>
        /// 只允许用户输入yes或no
        /// </summary>
        /// <param name="a">用户的输入</param>
        /// <returns>返回yes或者no</returns>
        public static string C(string a)
        {
            while (true)
            {
                if (a == "yes" || a == "no")
                {
                    Console.WriteLine("输入正确");
                    return a;
                }
                else
                {
                    Console.WriteLine("输入错误请重新输入");
                    a = Console.ReadLine();
                }
            }
        }

        /// <summary>
        /// 计算一个整数类型数组的总和
        /// </summary>
        /// <param name="number">要求总和的数组</param>
        /// <returns>返回数组的总和</returns>
        public static int D(int [] number)
        {
            while (true)
            {
                int sun = 0;
                for (int i = 0; i < number.Length; i++)
                {
                    sun += number[i];
                }
                return sun;
            }
        }
        #endregion
        /// <summary>
        /// 将一个字符串数组用|进行分割的形式
        /// </summary>
        /// <param name="number"></param>
        /// <returns></returns>
        public static string MM(string [] number)
        {
            string a = null;
            for (int i = 0; i < number.Length-1; i++)
            {
                a += number[i] + "|";
            }
            return a + number[number.Length - 1];
        }

        /// <summary>
        /// 通过冒泡排序对整数数组进行升序排列
        /// </summary>
        /// <param name="number"></param>
        public static void Aaa(int[] number)
        {
            for (int i = 0; i < number.Length; i++)
            {
                for (int j = 0; j < number.Length-1-i; j++)
                {
                    if (number[j] > number[j+1])
                    {
                        int a = number[j];
                        number[j] = number[j + 1];
                        number[j + 1] = a;
                    }
                }
            }
        }

        /// <summary>
        /// 判断用户输入的数字是否是质数
        /// </summary>
        /// <param name="number"></param>
        /// <returns></returns>
        public static bool Aa(int number)
        {
                if (number<2)
                {
                    return false;
                }
                else
                {
                    for (int i = 2; i < number; i++)
                   {
                    if (number % i == 0)
                    {
                        return false;
                    }
                   }
                }
            return true;
            
        }

        /// <summary>
        /// 要求用户只能输入数字，输入有误就让用户一直输入
        /// </summary>
        /// <param name="numbers"></param>
        /// <returns></returns>
        public static int Bb(string numbers)
        {
            while (true)
            {
                try
                {
                    int number = Convert.ToInt32(numbers);
                    return number;
                }
                catch
                {
                    Console.WriteLine("输入错误请重新输入");
                    numbers = Console.ReadLine();
                }
            }
        }

        /// <summary>
        /// 判断学习成绩
        /// </summary>
        /// <param name="a"></param>
        /// <returns></returns>
        public static string Cc(int a)
        {
            string n = "";
            switch (a / 10)
            {
                case 10:
                case 9:n = "优";break;
                case 8:n = "良";break;
                case 7:n = "中";break;
                case 6:n = "差";break;
                default:n = "不及格";
                    break;
            }
            return n;
        }

        /// <summary>
        /// 将字符串中的数组进行反转
        /// </summary>
        /// <param name="number"></param>
        /// <returns></returns>
        public static string[] Dd(string[] number)
        {
            for (int i = 0; i < number.Length/2; i++)
            {
                string numbers = number[i];
                number[i] = number[number.Length - 1 - i];
                number[number.Length - 1 - i] = numbers;
            }
            return number;
        }

        /// <summary>
        /// 计算一个数组里面的总和，最大值，最小值，平均值。
        /// </summary>
        /// <returns>返回最大最小总和和平均值</returns>
        public static int[] E(int [] number)
        {
            int[] num = new int[4];
            num[0] = number[0];//假设最大值
            num[1] = number[0];//假设最小值
            num[2] = number[0];//假设总和
            for (int i = 0; i < number.Length; i++)
            {
                //如果当前循环到的元素比我假定的最大值大就把他赋值给我的最大值
                if (number[i] > num[0])
                {
                    num[0] = number[i];
                }
                //如果当前循环到的元素比我假定的最小值还小就把他赋值给我的最小值
                if (number[i] < num[1])
                {
                    num[1] = number[i];
                }
                //把每次循环到的元素都加到假设的总和里面，得到总和
                num[2] += number[i];
            }
            //平均值
            //把数组的最后一个元素用来存放平均值
            num[3] = num[2] / number.Length;
            return num;
        }

        /// <summary>
        /// 使用out计算一个数组里面的总和，最大值，最小值，平均值。
        /// </summary>
        /// <param name="numbers">数组里面的值</param>
        /// <param name="max">存放最大值</param>
        /// <param name="min">存放最小值</param>
        /// <param name="sun">存放总和</param>
        /// <param name="avg">存放平均值</param>
        public static void F(int [] numbers,out int max,out int min,out int sun,out int avg)
        {
            //out参数的使用
            max = numbers[0];//最大值
            min = numbers[0];//最小值
            sun = numbers[0];//总和
            for (int i = 0; i < numbers.Length; i++)
            {
                //如果当前循环元素大于我假设的这个最大值，则将我当前循环元素赋值给我的最大值
                if (numbers[i] > max)
                {
                    max = numbers[i];
                }
                //如果当前循环元素小于我假设的这个最小值，则将当前循环元素赋值给我的最小值
                if (numbers[i] < min)
                {
                    min = numbers[i];
                }
                //把循环过程中的所有元素累加到我设定的总和里面
                sun += numbers[i];
            }
            //平均值 
            avg = sun / numbers.Length;
        }

        /// <summary>
        /// ref参数的用法
        /// </summary>
        /// <param name="s"></param>
        public static void jiangjin(ref double s)
        {
            s += 500;
        }

        /// <summary>
        /// 字符串转int类型
        /// </summary>
        /// <param name="a">要转换的值</param>
        /// <returns>转换成功后的值</returns>
        public static int Alx(string a)
        {
            while(true)
            {
                try
                {
                    int number = Convert.ToInt32(a);
                    return number;
                }
                catch
                {
                    Console.WriteLine("输入错误，请重新输入");
                    a =Console.ReadLine();
                }
            }

            
        }

        /// <summary>
        /// 判断第一个数字是否小于第二个数字
        /// </summary>
        /// <param name="n1">第一个输入的值</param>
        /// <param name="n2">第二个输入的值</param>
        public static void AlxA(ref int n1,ref int n2)
        {
            while(true)
            {
                if (n1 < n2)
                {
                    //符合题意
                    return;
                }
                else
                {
                    Console.WriteLine("第一个数字不能比第二个大请重新输入");
                    string a1 = Console.ReadLine();
                    n1 = Alx(a1);
                    Console.WriteLine("请输入第二个数字");
                    string a2 = Console.ReadLine();
                    n2 = Alx(a2);
                }
            }
        }

        /// <summary>
        /// 计算用户输入数字之间的和
        /// </summary>
        /// <param name="n1">用户输入的第一个数字</param>
        /// <param name="n2">用户输入的第二个数字</param>
        /// <returns>返回n1n2之间数字的总和</returns>
        public static int AlxB(int n1,int n2)
        {
            int sun = 0;//用来存储n1和n2两个数字之间的和
            for (int i = n1; i < n2; i++)
            {
                sun += i;
            }
            return sun;
        }

        /// <summary>
        /// 求字符串数组中最长的元素
        /// </summary>
        /// <param name="s"></param>
        /// <returns></returns>
        public static string Blx(string[] s)
        {
            string max = s[0];
            for (int i = 0; i < s.Length; i++)
            {
                if (s[i].Length > max.Length)
                {
                    max = s[i];
                }
            }
            return max;
        }

        /// <summary>
        /// 整数数组的平均值 保留两位小数
        /// </summary>
        /// <param name="a">求平均值的数组</param>
        /// <returns></returns>
        public static double Clx(int[] a)
        {
            double b = 0;//存总和
            for (int i = 0; i < a.Length; i++)
            {
                b += a[i];
            }
            return b / a.Length;
            
        }

        


    }
}
            













